
package jaxb;

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * Interface providing necessary methods to facilitate the reading and writing 
 * of data from the input and output streams of whatever class implements it.
 */
public interface ReaderWriter {
    
    /**
     * Returns the inputstream associated with this object
     * @return The inputstream
     */
    public abstract InputStream getInputStream();
    
    /**
     * Returns the outputstream associated with this object
     * @return OutputStream The outputstream associated with this object
     */
    public abstract OutputStream getOutputStream();
    
    /**
     * Returns the last time in milliseconds the file was modified
     * @return long The last time in milliseconds the file was modified
     */
    public long getLastModifiedMillis();
    
    /**
     * Returns the file of the ReaderWriter
     * @return File The File of the ReaderWriter
     */
    public File getFile();
}
